xpath($expr); if(!count($result)) { throw new Exception("Login failed"); } } else { $expr = "/api/login[@token]"; $result = $xml->xpath($expr); if(!count($result)) { throw new Exception("Login token not found in XML"); } } return $result[0]->attributes()->token; } function createsection ($pagename, $token, $sectionname, $sectiontext) { global $settings; $url = $settings['wikiroot'] . "/api.php"; $params = "format=xml&action=edit§ion=new§iontitle=$sectionname&text=$sectiontext"; $params .= "&token=$token"; $params .= "&title=$pagename"; $data = httpRequest($url, $params); if (empty($data)) { throw new Exception("No data received from server. Check that API is enabled."); } $xml = simplexml_load_string($data); $expr = "/api/edit[@result='Success']"; $result = $xml->xpath($expr); return $result[0]->attributes()->result; } try { global $settings; // perform login incl. confirmation $token = login($settings['user'], $settings['pass']); login($settings['user'], $settings['pass'], $token); //get edit token $url = $settings['wikiroot'] . "/api.php"; $params = "action=query&prop=info&intoken=edit&titles=Main%20Page&format=xml"; $data = httpRequest($url, $params); $xml = simplexml_load_string($data); $expr = "/api/query/pages/page[@edittoken]"; $result = $xml->xpath($expr); //echo ($result[0]->attributes()->edittoken); echo createsection (base64_decode($_GET["pagename"]), urlencode ($result[0]->attributes()->edittoken), base64_decode($_GET["sectionname"]),base64_decode($_GET["sectiontext"])); } catch (Exception $e) { die("FAILED: " . $e->getMessage()); } ?>